Computer systems require constant management and maintenance. In one conventional paradigm applied on an institutional basis, computer systems sharing a baseline configuration are identified, and management and maintenance actions are performed on each of the computer systems sharing the baseline configuration. “Baseline configuration” refers to an initial hardware and software configuration shared by computer systems to receive maintenance or upgrades. When determining whether to perform maintenance on a particular computer system, or to upgrade a particular computer system, the primary criterion applied is whether a particular computer system in the target population shares the baseline configuration. If it does, maintenance is performed or upgrades are installed on the computer system.
In certain situations it has been realized that such a configuration-oriented approach to computer system management is sub-optimal. For example, although it may be desirable to perform maintenance or to install upgrades, actual execution of the maintenance or upgrades may be performed in an inefficient manner because unique needs of the users of the computer systems being maintained are not taken into consideration. For example, an individual user of a computer system in a population of computer systems targeted for maintenance or upgrade may use her computer in a very different manner from other users; or may have a very different work schedule; or may be situated in geographically distant location from other users where access to networks necessary for performing the maintenance or upgrade may not always be guaranteed. In situations where users perform atypical work with their computers, or have differing work schedules or work habits, the maintenance or upgrade should be performed in a manner that is minimally invasive to the users of the computer systems being maintained or upgraded, and which reflects the true needs of the user.
In other situations, for economic reasons a configuration-oriented approach to the performance of maintenance and upgrades may be viewed as unnecessarily wasteful. Upgrades of, for example, application software often require purchasing of a license covering the upgrade. If a particular user will not utilize the enhanced functionality associated with the upgrade, then it is fiscally wasteful to purchase a license for the user.
In other instances, it may be desirable to spawn maintenance actions or upgrades throughout an entire computer system population, but it may not be economically efficient to spawn maintenance actions or upgrades immediately. It is a fact of life that all consequences associated with maintenance and upgrades may not be understood when the maintenance and upgrade actions are performed. Accordingly, in certain instances, maintenance or upgrade actions may degrade the performance of or “crash” computer systems. Therefore it may be desirable to selectively spawn maintenance or upgrades among a target population of computer systems (in, for example, stages) so that if a “glitch” is encountered and the maintenance or upgrade crashes computer systems, then it impacts only a limited number of computer systems. Those skilled in the art seek methods and apparatus that are capable of determining who best to spawn maintenance and upgrades to first.
The foregoing examples operated from an institutional perspective, where institutions seek alternatives to configuration-dependent management and maintenance of computer systems. Individual users of computer systems have similar concerns on how best to manage and maintain the computer systems they use for performing productivity tasks.
For example, when performing productivity operations using a plurality of computer system resources (such as application programs), users typically perform a series of ancillary tasks associated with the productivity operations. These ancillary tasks may comprise backing up content as it is created; encrypting files for security purposes; scanning content for viruses, etc. A user may have different preferences on how to perform theses ancillary tasks depending on what the user is actually doing with the computer.
In further situations, different users of computer systems may perform differing tasks with the same, or very similar, set of computer resources. In such instances, maintenance or upgrade actions that ignore this reality may be economically inefficient as well. For example, although a particular user may utilize a software program, he may only require “basic” functionality. Again, it would be economically wasteful to purchase an upgrade license for the user when increased functionality would go unused.
Alternatively, an individual user may employ the same, or very similar, set of computer resources to accomplish a plurality of distinct tasks. In conventional practice, policies, permissions and procedures concerning use of, for example, an application program to accomplish each of the tasks cannot be set with respect to particular tasks of the plurality. Instead, the policies, permissions and procedures associated with use of the application program, if different for each task, have to be changed each time a user changes from one task of the plurality to perform another task of the plurality.
In yet other situations, the concern may differ from whether to perform a maintenance task or upgrade action. The concern may be whether a user of a computer system is utilizing important features of, for example, a software suite. It is not unusual for users to exhibit both a working knowledge of a software package sufficient to perform productivity tasks, and ignorance concerning how best to optimize the software package for their needs. For example, if a user of a computer system spends a significant portion of time every day authoring content with the computer system, then one would expect that the user would have instituted a frequent backup protocol to protect from content loss resulting from system crashes or other unexpected events. This does not always occur, however, because the user may be unfamiliar with mechanisms for instituting backup protocols.
In a somewhat related vein, a user may be experiencing problems with a computer, but may be only minimally competent to fix the problem himself. In other instances, not only is performing the maintenance or upgrade beyond the ken of a user, but simply describing or diagnosing problems encountered during use may provide insuperable problems for users that have only a minimal understanding of computer systems. In both instances, significant amounts of time may be wasted in seeking, for example, on-line or telephonic expert assistance. In such situations; authorities or agents responsible for managing computer systems of novice users seek methods and apparatus that automate much of routine management and maintenance actions, but do so in a manner where such actions are taken only on an as-needed basis.
In still further situations, a group of users may be participating in a collaborative activity, using a number of computer systems to engage in the collaborative activity. In such situations it is necessary that the computer systems be configured properly so that the collaboration may occur. This often requires granting of permissions, installing software upgrades, etc., so that each of the parties to the collaboration can access the collaborative environment and participate fully in the collaborative environment. Alternatively, if particularly sensitive material is the subject of the collaboration, and a specific party, although authorized to collaborate, fails to do so, then it may be advisable to revoke the authorization decision to preserve security. This is difficult to accomplish in practice, however, since the participation of system administrators often ends with the granting of permissions and installation of needed software, and it would be unusual for system administrators to be monitoring whether parties are actually participating in a collaborative activity.
Accordingly, those skilled in the art desire methods and apparatus that overcome the foregoing limitations of the prior art. In particular, those skilled in the art desire methods that take into consideration actual needs of users of the computer systems being managed, maintained and upgraded. In addition, those skilled in the art desire methods and apparatus that assist users to optimally utilize features of computer systems or resources. Further, those skilled in the art desire methods and apparatus that assist in the performance of maintenance and other tasks in a collaborative environment.